/**
 * @type {String}
 *
 * @properties={typeid:35,uuid:"DD6A0549-CF6F-47DD-B055-B794C9BA8A5A"}
 */
var f_producto = null;

/**
 * @type {String}
 *
 * @properties={typeid:35,uuid:"A8101302-5652-4D7F-A714-AB1633AE33A0"}
 */
var f_descripcion = null;

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"FD815506-FADC-4B2A-9DCB-63E6D7BC1D46"}
 */
function iniciar(firstShow, event) 
{ // este form fue copiado de costos_calculo //  26/11/2013
	//if (firstShow)
	//{
		foundset.loadAllRecords();
		databaseManager.setAutoSave(true);
		f_producto = null
		buscar(null);
	//}
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"145E2A5B-4BDC-4D44-88DE-CAE90E3F6058"}
 * @AllowToRunInFind
 */
function buscar(event) 
{
foundset.loadAllRecords();  
if(controller.find() == false)
{
	globals.gMensaje='No encontró productos (find)'
	globals.DIALOGS.showInfoDialog('Costos Historicos',  globals.gMensaje,  "OK")
	return false 
}

if (f_producto != null)
	// cod_producto='%' + f_cod_producto + '%';  //  buscar en cualquier posicion lo ingresdao
	producto_id = f_producto; // busca exactamente el codigo 

inactivo = 0 // solo activos 
	
if (f_descripcion != null)
	descripcion = '#%' + f_descripcion + '%'
	
tipo = scopes.globals.zconf_tipo_prod_terminado  // = 4 CUIDADO NO CAMBIAR en tablas_detalle	

var found = controller.search()
if(found == 0)
{
	globals.gMensaje = 'No encontró productos en ese rango'
	globals.DIALOGS.showInfoDialog('Costos Historicos',  globals.gMensaje,  "OK")
	return true
} 
/*
if (f_version != null)
	f_version = version_id_default;   */   // no porque solo trae la default

return true;
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"D763235A-502D-4D1B-80FB-C033E841055A"}
 */
function todos(event) 
{
	f_producto    = null;
	f_descripcion = null;

	if(event.getElementName() == 'todos') 
		buscar(null);
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"310AEEAA-A0EB-4C6D-8424-BEB4039A9AC9"}
 */
function onAction_producto(event) 
{  
	buscar(null);
 
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"7BC40329-F0FF-40B4-A755-939B057D2198"}
 */
function marcar_todo(event) 
{
	var $total = databaseManager.getFoundSetCount(foundset)
	for (var i = 1 ; i <= $total; i++)
	{
		var $rcd = foundset.getRecord(i)
	  	$rcd.marcado_costo = 1
	}
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"EF07B132-251C-45A6-8633-8C2648451C40"}
 */
function desmarcar_todo(event) 
{
	var $total = databaseManager.getFoundSetCount(foundset)
	for (var i = 1 ; i <= $total; i++)
	{
		var $rcd = foundset.getRecord(i)
	  	$rcd.marcado_costo = 0
	}
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"8C139438-7CC5-4304-9DBB-30C0A6ECF192"}
 */
function calcular_todo(event) 
{
	var aux_fecha = application.getServerTimeStamp();
	aux_fecha.setHours(0,0,0,0)
// TODO
/*
	var $win = application.createWindow('costos_hist',JSWindow.MODAL_DIALOG)  //  30/12/2013
	$win.setInitialBounds(300, 400, 600, 150);
	$win.show(forms.costos_histor_procesa)
	forms.costos_histor_procesa.elements.descr = ' INICIO PROCESO'
*/
	var $total = databaseManager.getFoundSetCount(foundset)
	for (var i = 1 ; i <= $total; i++)
	{
		var $rcd = foundset.getRecord(i)
		if ($rcd.marcado_costo == 1)
		{
			//  TODO falta resolver
			//forms.costos_histor_procesa.elements.descr = 'Producto: ' + $rcd.cod_producto + ' - ' + $rcd.descripcion   // 30/12/2013
			var ds_doble = globals.gdespiece($rcd.producto_id,$rcd.version_id_default,1,1)  //  19/09/2013 devuelve ds de arbol y ds x tipo prod.
			
			if (ds_doble == false) 
			{  /*
				$win = application.getWindow('costos_hist')  //  30/12/2013
				$win.hide()
				$win.destroy()  */
				return;
			}
			var $titulo = 'Costo Historico '  //  no se va a usar
			var $costo = globals.gdespiece_mostrar_tree(ds_doble,'HISTOR',$titulo)  //  es costo 'HISTORICO' 27/11/2013
			if ($costo != -1)	// si devuelve  -1 no calculó bien o es un error
			{
				// regrabar productos
				$rcd.marcado_costo = 0    // hacerlo aqui y no en el onHide el founsetUpdater solo sirve si es campo de la tabla
				if (Math.abs($costo - $rcd.costo) > 0.009)
				{
					$rcd.costo = $costo
					$rcd.fecha_ult_costo = aux_fecha
					// grabar historico
					$rcd.productos_to_costos_historicos.newRecord()
					$rcd.productos_to_costos_historicos.fecha = aux_fecha
					$rcd.productos_to_costos_historicos.costo = $costo
					$rcd.productos_to_costos_historicos.version_id = $rcd.version_id_default
				}
			}
		}	
	}
	/*
	$win = application.getWindow('costos_hist')  //  30/12/2013
	$win.hide()
	$win.destroy()
	*/
	
	var estado = databaseManager.saveData()
	if (! estado)
	{
		globals.gMensaje = 'No grabó costos historicos '
		globals.DIALOGS.showInfoDialog('Costos Historicos',  globals.gMensaje,  "OK")
	}
	else
	{	
		globals.gMensaje = 'Costos Historicos grabados'
		globals.DIALOGS.showInfoDialog('Costos Historicos',  globals.gMensaje,  "OK")
	}
		
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"5285FFB4-BBD0-49ED-AAAD-429D6C3455EF"}
 */
function anula_producto(event) 
{
	f_producto = null
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"A2E1A016-5857-4BE3-A4AB-CFFC062B7504"}
 */
function anula_descr(event) 
{
	f_descripcion = null
}
